Skip to content

feat(sdks): Add sdkMetadata to Clerk singleton, populate it for each SDK - #1857

Merged
brkalow merged 9 commits into
mainfrom
brk.feat/sdk-metadata
Oct 11, 2023
Merged

feat(sdks): Add sdkMetadata to Clerk singleton, populate it for each SDK#1857
brkalow merged 9 commits into
mainfrom
brk.feat/sdk-metadata

Conversation

@brkalow

@brkalow brkalow commented Oct 10, 2023

Copy link
Copy Markdown
Member

Description

Adds a new static property to the Clerk singleton, sdkMetadata, and populates it for each host SDK. We'll use this data to make it easier to understand what host SDK is initializing Clerk.

> Clerk.sdkMetadata
{name: '@clerk/nextjs', version: '4.25.3'}

As part of adding this to each SDK, I also introduced tsup to the remaining packages that weren't already using it. This allows us to define the PACKAGE_NAME and PACKAGE_VERSION constants at build time:

  • remix
  • gatsby-plugin-clerk
  • expo

Note that there's definitely an opportunity to consolidate some of our package tooling, but I'm deferring that work for now.

Checklist

  • npm test runs as expected.
  • npm run build runs as expected.
  • (If applicable) JSDoc comments have been added or updated for any package exports
  • (If applicable) Documentation has been updated

Type of change

  • 🐛 Bug fix
  • 🌟 New feature
  • 🔨 Breaking change
  • 📖 Refactoring / dependency upgrade / documentation
  • other:

Packages affected

  • @clerk/clerk-js
  • @clerk/clerk-react
  • @clerk/nextjs
  • @clerk/remix
  • @clerk/types
  • @clerk/themes
  • @clerk/localizations
  • @clerk/clerk-expo
  • @clerk/backend
  • @clerk/clerk-sdk-node
  • @clerk/shared
  • @clerk/fastify
  • @clerk/chrome-extension
  • gatsby-plugin-clerk
  • build/tooling/chore

@brkalow
brkalow requested a review from a team as a code owner October 10, 2023 22:20
@changeset-bot

changeset-bot Bot commented Oct 10, 2023

Copy link
Copy Markdown

🦋 Changeset detected

Latest commit: e5fedd6

The changes in this PR will be included in the next version bump.

This PR includes changesets to release 12 packages
Name Type
gatsby-plugin-clerk Patch
@clerk/clerk-js Patch
@clerk/chrome-extension Patch
@clerk/fastify Patch
@clerk/nextjs Patch
@clerk/clerk-react Patch
@clerk/remix Patch
@clerk/types Patch
@clerk/clerk-expo Patch
@clerk/backend Patch
@clerk/localizations Patch
@clerk/clerk-sdk-node Patch

Not sure what this means? Click here to learn what changesets are.

Click here if you're a maintainer who wants to add another changeset to this PR

await global.Clerk.load(this.options);
}

global.Clerk.sdkMetadata = this.options.sdkMetadata ?? { name: PACKAGE_NAME, version: PACKAGE_VERSION };

Copy link
Copy Markdown
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

For SDKs that use ClerkProvider, this is how we are passing through and setting the metadata. SDKs that access Clerk directly assign it themselves.

Comment thread packages/gatsby-plugin-clerk/src/GatsbyClerkProvider.tsx Outdated
"build": "tsup",
"dev": "tsup --watch",
"dev:publish": "npm run dev -- --env.publish",
"build:declarations": "tsc -p tsconfig.declarations.json",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I know that we do this in the other packages but IMO we should just use tsup to also output the types and not use TSC

But that can happen in another PR

{
"extends": "./tsconfig.build.json",
"compilerOptions": {
"outDir": "dist",

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We should extend this from a root/base tsconfig.json

But that's for another PR

Comment thread packages/expo/src/singleton.ts Outdated
@brkalow
brkalow added this pull request to the merge queue Oct 11, 2023
Merged via the queue into main with commit 91e9a55 Oct 11, 2023
@brkalow
brkalow deleted the brk.feat/sdk-metadata branch October 11, 2023 16:54
@clerk-cookie clerk-cookie mentioned this pull request Oct 11, 2023
@clerk-cookie

Copy link
Copy Markdown
Collaborator

This PR has been automatically locked since there has not been any recent activity after it was closed. Please open a new issue for related bugs.

@clerk clerk locked as resolved and limited conversation to collaborators Oct 11, 2024
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Projects

None yet

Development

Successfully merging this pull request may close these issues.

4 participants